﻿package  {
	
	public class HitzZerrenda{
		
		private var zerrenda:Zerrenda;
		
		//SINGLETON PATROIA 
		private static var instantzia:HitzZerrenda;
  		private static var instantziaAhalbidetu:Boolean =false;

		public function HitzZerrenda() {
			//21 letra
			if(!instantziaAhalbidetu){
         		throw new Error("getInstantzia() erabili behar duzu");   
      		}else{ 
				zerrenda= new Zerrenda();
				zerrenda.hasieratu(["ahatea","armiarma","arraina","astoa","balea","behia","dortoka","elefantea","etxea","fruta","gaztelua","hartza","izurdea","jirafa","katua","kotxea","lehoia","liburua","mamua","negua","otsoa","pirata","robot","sagua","sorgina","sugea","tigrea","txakurra","tximua","untxia","urtxintxa","xilofonoa","zuhaitza"]);
			}
		}
		
		public static function getInstantzia():HitzZerrenda{
			if(instantzia==null){ //null ez bada aurretik existitzen dena bueltatuko da.
         		instantziaAhalbidetu=true;
         		instantzia= new HitzZerrenda();
         		instantziaAhalbidetu=false;                   
      		}
     		return instantzia;
		}
		
	
		
		public function getBitartekoHitzak(azpiMuga:int,goikoMuga:int):Zerrenda{
			
			var zerrendaLaguntzailea:Zerrenda = new Zerrenda();
			var j : int = 0;
			var i : int;
			
			for (i=0; i<zerrenda.luzera(); i++)
			{
		
				var karaktereKop : int = zerrenda.getElementua(i).length;
				
				if ((karaktereKop >= azpiMuga)&&(karaktereKop <= goikoMuga)){
					zerrendaLaguntzailea.setElementua(j, zerrenda.getElementua(i));
					j++;
				}
			}
			return zerrendaLaguntzailea;
			
		}
		
		
		public function nahastu(){
			zerrenda.nahastu();
		}
		public function getElementua(i :int) : String{
			return zerrenda.getElementua(i);
		}
		public function setElementua(i :int, s:String){
			zerrenda.setElementua(i,s);
		}
		

	}
	
}

